package com.alex.ip.holder.common.vo;

import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
import com.alex.ip.holder.common.dto.ClientDTO;
import com.alex.ip.holder.common.enums.ServerStatus;
import java.io.Serializable;
import lombok.Getter;
import lombok.Setter;

/**
 * 服务信息
 *
 * @author Alex.Liu
 * @date: 2025-02-18 15:25
 * @since 1.0.0
 */
@Getter
@Setter
public class ClientVO extends ClientDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 地址
     */
    private String host;

    /**
     * 服务状态
     */
    private ServerStatus status = ServerStatus.ONLINE;


    /**
     * 最後更新時間
     */
    private long lastUpdateTime;

    /**
     * 獲取服務器請求地址
     *
     * @return
     */
    public String toURL() {
        StringBuilder domain = new StringBuilder("http://");
        domain.append(getHost());
        domain.append(":");
        domain.append(getPort());
        if (StrUtil.isNotBlank(getContextPath())) {
            domain.append("/").append(getContextPath());
        }
        return domain.toString();
    }

    @Override
    public String toString() {
        return JSONUtil.toJsonStr(this);
    }
}
